﻿Imports VN.INS.DL.DH
Imports VN.INS.BL.BE

Public Class consolidadoDA
    
    Public Function cargar_grilla(ByVal v_Mes As String, ByVal v_Ano As String, ByVal v_PPER As String) As DataTable
        Dim objData As AdministradorOracle = New AdministradorOracle
        Dim objDt As DataTable
        'Dim lxc_SQL As String
        Try

            objData.CreateInputOracle("v_Mes", v_Mes, 2)
            objData.CreateInputOracle("v_Ano", v_Ano, 4)
            objData.CreateInputOracle("v_PPER", v_PPER, 8)
            objData.CreateOutputOracle("p_Cursor", "", 100)
            objDt = objData.ExecuteOracle("SP_CONSOLIDADO_TIPO_ASIGNACION", "Conexion.Oracle")

            'lxc_SQL = "SELECT A.PPER,B.TIPO_ASIGNACION_RECURSO, C.DESCRIPCION TIPO_ASIG_DESC,  " + _
            '"B.TIPO_PROYECTO_ACTIVIDAD, " + _
            '"   Case B.TIPO_PROYECTO_ACTIVIDAD " + _
            '"WHEN '2' THEN 'PRODUCTO '" + _
            '"ELSE  D.DESCRIPCION END  " + _
            '"TIPO_PROY_ACT_DESC, " + _
            '"SUM(B.MONTO_TOTAL_INVERTIDO) TOTAL, " + _
            '"PROGRAMADO_ACUMULADO('" + mes + "',A.PPER,B.TIPO_ASIGNACION_RECURSO,B.TIPO_PROYECTO_ACTIVIDAD) ACUMULADO " + _
            '"FROM PPER A " + _
            '"INNER JOIN POA B " + _
            '"ON B.PPER = A. PPER " + _
            '"INNER JOIN GENERAL C " + _
            '"ON C.ID = 'TIPO_ASIGNACION_RECURSO' AND C.CODIGO = B.TIPO_ASIGNACION_RECURSO " + _
            '"INNER JOIN TIPO_PROYECTO_ACTIVIDAD D " + _
            '"ON D.TIPO_PROYECTO_ACTIVIDAD = B.TIPO_PROYECTO_ACTIVIDAD " + _
            '"LEFT JOIN POA_ACTIVIDAD_FINANCIERA E " + _
            '"ON E.POA = B.POA " + _
            '"LEFT JOIN PLAN_TRABAJO_POA F " + _
            '"ON F.POA = E.POA " + _
            '"LEFT JOIN PLAN_TRABAJO_PERSONA G " + _
            '"ON G.ID_PLAN_TRABAJO_PERSONA = F.ID_PLAN_TRABAJO_PERSONA " + _
            '"LEFT JOIN PERIODO H " + _
            '"ON H.PERIODO = G.PERIODO " + _
            '"GROUP BY  A.PPER, B.TIPO_ASIGNACION_RECURSO, C.DESCRIPCION, B.TIPO_PROYECTO_ACTIVIDAD, D.DESCRIPCION " + _
            '"HAVING A.PPER = '" + pper + "'  " + _
            '"ORDER BY PPER"

            'lxc_SQL = "  SELECT " + _
            '          "A.TIPO_ASIGNACION_RECURSO,  " + _
            '          "B.DESCRIPCION, " + _
            '          "A.TIPO_PROYECTO_ACTIVIDAD, " + _
            '          "B1.DESCRIPCION, " + _
            '          "SUM (A.MONTO_TOTAL_INVERTIDO) TOTAL, " + _
            '          "A.PPER, " + _
            '          "SUM(NVL(C.MONTO_PROGRAMADO,0)) PROGRA_ACUMULADO, " + _
            '          "SUM(NVL(A.MONTO_TRANSFERIDO,0)) MONTO_TRANSFERIDO, " + _
            '          "SUM (MONTO_GIRADO) MONTO_GIRADO, " + _
            '          "ROUND (SUM (MONTO_GIRADO) / SUM (MONTO_PROGRAMADO), 3) PORCENT, " + _
            '          "IAFG_POA (A.TIPO_PROYECTO_ACTIVIDAD, A.TIPO_ASIGNACION_RECURSO) / IAFG_CONTEO (A.TIPO_PROYECTO_ACTIVIDAD, A.TIPO_ASIGNACION_RECURSO) / 100  IAFG_PROM  " + _
            '          "FROM    POA A " + _
            '          "INNER JOIN GENERAL B " + _
            '          "ON B.ID = 'TIPO_ASIGNACION_RECURSO' " + _
            '          "AND B.CODIGO = A.TIPO_ASIGNACION_RECURSO " + _
            '          "INNER JOIN GENERAL B1 " + _
            '          "ON B1.ID = 'TIPO_COMPONENTE' " + _
            '          "AND B1.CODIGO = A.TIPO_PROYECTO_ACTIVIDAD " + _
            '          "LEFT JOIN SEG_PERIODO_AVAN_FINAN C " + _
            '          "ON C.POA = A.POA " + _
            '          "GROUP BY A.PPER, A.TIPO_ASIGNACION_RECURSO, B.DESCRIPCION,A.TIPO_PROYECTO_ACTIVIDAD,B1.DESCRIPCION " + _
            '          "HAVING A.PPER = 'PPE-0003'"


            'lxc_SQL = " select  TIPO_ASIGNACION_RECURSO, g.descripcion, CASE WHEN (TPA.DESCRIPCION = 'ACTIVIDAD')" + _
            '          " THEN 'PRODUCTO' ELSE TPA.DESCRIPCION END tipo_proyecto_actividad, sum(DISTINCT monto_total_invertido) total  , " + _
            '          " SUM(MONTO_PROGRAMADO) PROGRA_ACUMULADO ,sum( MONTO_TRANSFERIDO) AS MONTO_TRANSFERIDO, " + _
            '          " SUM(MONTO_GIRADO ) MONTO_GIRADO, Round(SUM(MONTO_GIRADO ) /  SUM(MONTO_PROGRAMADO),3)  PORCENT, " + _
            '          " IAFG_POA(P.TIPO_PROYECTO_ACTIVIDAD, P.TIPO_ASIGNACION_RECURSO) /" + _
            '          " IAFG_CONTEO(P.TIPO_PROYECTO_ACTIVIDAD, P.TIPO_ASIGNACION_RECURSO)/100 IAFG_PROM " + _
            '          " from poa P " + _
            '          " inner join SEG_PERIODO_AVAN_FINAN_MENSUAL SFM ON SFM.POA=P.POA " + _
            '          " INNER JOIN PPER PP ON  SFM.PPER = PP.PPER AND SFM.PPER='" + pper + "'" + _
            '          " INNER JOIN general g  on g.codigo =  P.TIPO_ASIGNACION_RECURSO and G.ID = 'TIPO_ASIGNACION_RECURSO'  " + _
            '          " INNER JOIN  PERIODO PERD ON SFM.PERIODO = PERD.PERIODO AND PERD.TIPO_PERIODO='AVANCE_FINAN_MENSUAL'   " + _
            '          " AND PERD.MES=" + mes + " AND  PERD.ANHIO=" + año + "" + _
            '          " INNER JOIN TIPO_PROYECTO_ACTIVIDAD TPA ON TPA.TIPO_PROYECTO_ACTIVIDAD = P.TIPO_PROYECTO_ACTIVIDAD   " + _
            '          " WHERE TIPO_ASIGNACION_RECURSO Is Not null   AND MONTO_TRANSFERIDO is not null    GROUP BY   " + _
            '          " P.TIPO_ASIGNACION_RECURSO, g.descripcion, TPA.DESCRIPCION, P.TIPO_PROYECTO_ACTIVIDAD " + _
            '          " ORDER BY TIPO_ASIGNACION_RECURSO, P.TIPO_PROYECTO_ACTIVIDAD "

            'objDt = objData.ExecuteSQL(lxc_SQL, "Conexion.Oracle")
            Return objDt
        Catch ex As Exception
            Throw
        End Try
    End Function
    Public Function cargar_grilla2() As DataTable
        Dim objData As AdministradorOracle = New AdministradorOracle
        Dim objDt As DataTable
        'Dim objDt2 As DataTable
        Dim lxc_SQL As String

        Try

            lxc_SQL = " SELECT E.DESCRIPCION, P.NOMBRE,  P.TIPO_PROYECTO_ACTIVIDAD,TIPO_PROYECTO_ACTIVIDAD.DESCRIPCION, " + _
                    "    CASE WHEN P.TIPO_PROYECTO_ACTIVIDAD = '1' THEN P.TIPO_PROYECTO_DES " + _
                    "    ELSE CASE WHEN P.TIPO_PROYECTO_ACTIVIDAD = '2' THEN P.PRODUCTO " + _
                    "    ELSE '3' END END  TIPO_PROYECTO_DES, " + _
                    "  PRODUCTO.DESCRIPCION,P.PRODUCTO , MONTO_TOTAL_INVERTIDO TOTAL, " + _
                    "  NVL(SPPM.MONTO_PROGRAMADO,0)  MONTO_PROGRAMADO, SPPM.OBSERVACIONES, " + _
                    "  NVL(P.MONTO_TRANSFERIDO,0) MONTO_TRANSFERIDO,SPPM.MONTO_GIRADO  MONTO_GIRADO, ROUND(CASE WHEN MONTO_PROGRAMADO = 0 THEN 0 ELSE MONTO_GIRADO / MONTO_PROGRAMADO END, 3) PORCENT " + _
                    "  FROM  SEG_PERIODO_AVAN_FINAN_MENSUAL  SPPM " + _
                    "  INNER JOIN POA P ON SPPM.POA=P.POA " + _
                    "  INNER JOIN EJECUTOR E " + _
                    "  ON E.EJECUTOR = P.EJECUTOR " + _
                    " left join PRODUCTO ON P.PRODUCTO=PRODUCTO.PRODUCTO " + _
                    " INNER JOIN  TIPO_PROYECTO_ACTIVIDAD ON TIPO_PROYECTO_ACTIVIDAD.TIPO_PROYECTO_ACTIVIDAD = P.TIPO_PROYECTO_ACTIVIDAD " + _
                                " WHERE(MONTO_TRANSFERIDO Is Not NULL And TIPO_ASIGNACION_RECURSO Is Not NULL) " + _
                    " ORDER BY TIPO_PROYECTO_ACTIVIDAD,P.TIPO_PROYECTO_DES,P.PRODUCTO "

            objDt = objData.ExecuteSQL(lxc_SQL, "Conexion.Oracle")


            Return objDt
        Catch ex As Exception
            Throw
        End Try
    End Function
    Public Function cargar_grilla_prin(ByVal PPER As String, ByVal Periodo As String) As DataTable
        Dim objData As AdministradorOracle = New AdministradorOracle
        Dim objDt As DataTable
        Dim lxc_SQL As String
        Try
            lxc_SQL = " select SPAVFIN.INF_C_AV AS CODIGO,P.ABREVIATURA,SPAVFIN.PERIODO, SPAVFIN.FECHA,P.DESCRIPCION from SEG_PER_AVAN_FIN_MEN_PROGRAMA  SPAVFIN " + _
                        " INNER JOIN PPER P ON SPAVFIN.PPER = P.PPER " + _
                        " WHERE SPAVFIN.PPER='" + PPER + "' AND SPAVFIN.PERIODO like '%" + Periodo + "' order by SPAVFIN.INF_C_AV"

            objDt = objData.ExecuteSQL(lxc_SQL, "Conexion.Oracle")
            Return objDt

        Catch ex As Exception
            Throw
        End Try
    End Function
    Public Function cargar_grilla_coment(ByVal cod As String) As DataTable
        Dim objData As AdministradorOracle = New AdministradorOracle
        Dim objDt As DataTable
        Dim lxc_SQL As String
        Try
            lxc_SQL = " SELECT INF_C_AV,TIPO,DESCRIPCION,COMENT FROM COMENT_PPER_FIN_MEN_PROGRAMA " + _
                      " where tipo='C'  and INF_C_AV='" + cod + "' order by COMENT"

            objDt = objData.ExecuteSQL(lxc_SQL, "Conexion.Oracle")
            Return objDt

        Catch ex As Exception
            Throw
        End Try
    End Function
    Public Function cargar_grilla_acc(ByVal cod As String) As DataTable
        Dim objData As AdministradorOracle = New AdministradorOracle
        Dim objDt As DataTable
        Dim lxc_SQL As String
        Try
            lxc_SQL = " SELECT INF_C_AV,TIPO,DESCRIPCION,COMENT FROM COMENT_PPER_FIN_MEN_PROGRAMA " + _
                      " where tipo='A'  and INF_C_AV='" + cod + "'"

            objDt = objData.ExecuteSQL(lxc_SQL, "Conexion.Oracle")
            Return objDt

        Catch ex As Exception
            Throw
        End Try
    End Function
    Public Function cargar_grilla_prob(ByVal cod As String) As DataTable
        Dim objData As AdministradorOracle = New AdministradorOracle
        Dim objDt As DataTable
        Dim lxc_SQL As String
        Try
            lxc_SQL = " SELECT INF_C_AV,TIPO,DESCRIPCION,COMENT FROM COMENT_PPER_FIN_MEN_PROGRAMA " + _
                      " where tipo='P'  and INF_C_AV='" + cod + "'"

            objDt = objData.ExecuteSQL(lxc_SQL, "Conexion.Oracle")
            Return objDt

        Catch ex As Exception
            Throw
        End Try
    End Function
    Public Function PPER() As DataTable
        Dim objData As AdministradorOracle = New AdministradorOracle
        Dim objDt As DataTable
        Dim lxc_SQL As String

        Try

            lxc_SQL = " SELECT PPER,DESCRIPCION,ABREVIATURA FROM PPER "

            objDt = objData.ExecuteSQL(lxc_SQL, "Conexion.Oracle")
            Return objDt

        Catch ex As Exception
            Throw
        End Try
    End Function
    Public Function tipo_trans() As DataTable
        Dim objData As AdministradorOracle = New AdministradorOracle
        Dim objDt As DataTable
        Dim lxc_SQL As String

        Try

            lxc_SQL = "  select codigo, descripcion   from general where ID = 'TIPO_ASIGNACION_RECURSO' order by codigo asc"

            objDt = objData.ExecuteSQL(lxc_SQL, "Conexion.Oracle")
            Return objDt

        Catch ex As Exception
            Throw
        End Try
    End Function
    Public Function tipo_trans2() As DataTable
        Dim objData As AdministradorOracle = New AdministradorOracle
        Dim objDt As DataTable
        Dim lxc_SQL As String
        Try
            lxc_SQL = " SELECT DISTINCT P.TIPO_PROYECTO_ACTIVIDAD  , TP.DESCRIPCION, " + _
                    "    CASE " + _
                    "    WHEN TP.TIPO_PROYECTO_ACTIVIDAD = '2'" + _
                    "    THEN" + _
                    "    'A'" + _
                    "    ELSE" + _
                    "       (CASE" + _
                    "           WHEN TP.TIPO_PROYECTO_ACTIVIDAD = '1' THEN 'B'" + _
                    "           ELSE 'C'" + _
                    "        END)" + _
                    "   End" + _
                    "   TIPO" + _
                    " FROM  SEG_PERIODO_AVAN_FINAN_MENSUAL  SPPM " + _
                    " INNER JOIN POA P ON SPPM.POA=P.POA " + _
                    " left join PRODUCTO ON P.PRODUCTO=PRODUCTO.PRODUCTO " + _
                    " iNNER JOIN  TIPO_PROYECTO_ACTIVIDAD TP ON TP.TIPO_PROYECTO_ACTIVIDAD = P.TIPO_PROYECTO_ACTIVIDAD " + _
                    " WHERE(MONTO_TRANSFERIDO Is Not NULL And TIPO_ASIGNACION_RECURSO Is Not NULL) " + _
                    " ORDER BY TIPO "

            objDt = objData.ExecuteSQL(lxc_SQL, "Conexion.Oracle")
            Return objDt

        Catch ex As Exception
            Throw
        End Try
    End Function
    Public Function tipo_PROY() As DataTable
        Dim objData As AdministradorOracle = New AdministradorOracle
        Dim objDt As DataTable
        Dim lxc_SQL As String
        Try
            lxc_SQL = " SELECT DISTINCT TIPO_PROYECTO_DES AS CODIGO, P.TIPO_PROYECTO_ACTIVIDAD   ,  G.DESCRIPCION " + _
                        " FROM  SEG_PERIODO_AVAN_FINAN_MENSUAL  SPPM " + _
                         " INNER JOIN POA P ON SPPM.POA=P.POA " + _
                        "  left join PRODUCTO ON P.PRODUCTO=PRODUCTO.PRODUCTO " + _
                        " INNER JOIN  TIPO_PROYECTO_ACTIVIDAD ON TIPO_PROYECTO_ACTIVIDAD.TIPO_PROYECTO_ACTIVIDAD = P.TIPO_PROYECTO_ACTIVIDAD " + _
                        "  INNER JOIN GENERAL G ON G.CODIGO=P.TIPO_PROYECTO_DES AND G.ID='TIPO_PROYECTO_DES' " + _
                                    " WHERE(MONTO_TRANSFERIDO Is Not NULL And TIPO_ASIGNACION_RECURSO Is Not NULL) " + _
                         "  and TIPO_PROYECTO_ACTIVIDAD.TIPO_PROYECTO_ACTIVIDAD= '1' " + _
                        " ORDER BY TIPO_PROYECTO_ACTIVIDAD"

            objDt = objData.ExecuteSQL(lxc_SQL, "Conexion.Oracle")
            Return objDt

        Catch ex As Exception
            Throw
        End Try
    End Function
    Public Function tipo_ACTV() As DataTable
        Dim objData As AdministradorOracle = New AdministradorOracle
        Dim objDt As DataTable
        Dim lxc_SQL As String
        Try
            lxc_SQL = "SELECT DISTINCT  P.PRODUCTO AS CODIGO , P.TIPO_PROYECTO_ACTIVIDAD   , UPPER(PRODUCTO.DESCRIPCION) DESCRIPCION " + _
                    " FROM  SEG_PERIODO_AVAN_FINAN_MENSUAL  SPPM " + _
                    " INNER JOIN POA P ON SPPM.POA=P.POA " + _
                     " left join PRODUCTO ON P.PRODUCTO=PRODUCTO.PRODUCTO " + _
                    " INNER JOIN  TIPO_PROYECTO_ACTIVIDAD ON TIPO_PROYECTO_ACTIVIDAD.TIPO_PROYECTO_ACTIVIDAD = P.TIPO_PROYECTO_ACTIVIDAD " + _
                    " LEFT JOIN GENERAL G ON G.CODIGO=P.TIPO_PROYECTO_DES AND G.ID='TIPO_PROYECTO_DES' " + _
                     " WHERE(MONTO_TRANSFERIDO Is Not NULL And TIPO_ASIGNACION_RECURSO Is Not NULL) " + _
                     " and TIPO_PROYECTO_ACTIVIDAD.TIPO_PROYECTO_ACTIVIDAD= '2' " + _
                     " ORDER BY P.PRODUCTO "
            objDt = objData.ExecuteSQL(lxc_SQL, "Conexion.Oracle")
            Return objDt
        Catch ex As Exception
            Throw
        End Try
    End Function
    Public Function tipo_ACC() As DataTable
        Dim objData As AdministradorOracle = New AdministradorOracle
        Dim objDt As DataTable
        Dim lxc_SQL As String
        Try
            lxc_SQL = " SELECT DISTINCT  P.TIPO_PROYECTO_ACTIVIDAD  CODIGO   ,  P.TIPO_PROYECTO_ACTIVIDAD  , TIPO_PROYECTO_ACTIVIDAD.DESCRIPCION" + _
                    " FROM  SEG_PERIODO_AVAN_FINAN_MENSUAL  SPPM " + _
                    "INNER JOIN POA P ON SPPM.POA=P.POA " + _
                    " left join PRODUCTO ON P.PRODUCTO=PRODUCTO.PRODUCTO " + _
                    " INNER JOIN  TIPO_PROYECTO_ACTIVIDAD ON TIPO_PROYECTO_ACTIVIDAD.TIPO_PROYECTO_ACTIVIDAD = P.TIPO_PROYECTO_ACTIVIDAD " + _
                    " LEFT JOIN GENERAL G ON G.CODIGO=P.TIPO_PROYECTO_DES AND G.ID='TIPO_PROYECTO_DES' " + _
                    " WHERE(MONTO_TRANSFERIDO Is Not NULL And TIPO_ASIGNACION_RECURSO Is Not NULL) " + _
                    " and TIPO_PROYECTO_ACTIVIDAD.TIPO_PROYECTO_ACTIVIDAD= '3' "
            objDt = objData.ExecuteSQL(lxc_SQL, "Conexion.Oracle")
            Return objDt
        Catch ex As Exception
            Throw
        End Try
    End Function
    Public Sub insert_coment(ByVal COmX As String, ByVal descrip As String, ByVal id_pper_mensual As String, ByVal tipo As String)
        Dim objData As AdministradorOracle = New AdministradorOracle
        Try
            objData.CreateInputOracle("COmX", COmX, 20)
            objData.CreateInputOracle("ID_PPE", id_pper_mensual, 20)
            objData.CreateInputOracle("TIPOCM", tipo, 20)
            objData.CreateInputOracle("DESCR", descrip, 3000)
            objData.ExecuteOracle_NonQuery("INSERT_COMENT_PPER_FIN_MEN", "Conexion.Oracle")
        Catch ex As Exception
            Throw ex
        End Try
    End Sub
    Public Sub update_coment(ByVal COMX As String, ByVal descrip As String)
        Dim objData As AdministradorOracle = New AdministradorOracle
        Try
            objData.CreateInputOracle("COMX", COMX, 20)
            objData.CreateInputOracle("DESCX", descrip, 3000)
            objData.ExecuteOracle_NonQuery("EDITAR_COMENT_PPER_FIN_MEN", "Conexion.Oracle")
        Catch ex As Exception
            Throw ex
        End Try
    End Sub
    Public Sub insert_avan_pper(ByVal idppe As String, ByVal period As String, ByVal pper As String, ByVal fech As String, ByVal firm_M As String, ByVal firm_pper As String)
        Dim objData As AdministradorOracle = New AdministradorOracle
        Try
            objData.CreateInputOracle("ID_PPE", idppe, 20)
            objData.CreateInputOracle("PERD", period, 20)
            objData.CreateInputOracle("PPERX", pper, 10)
            objData.CreateInputOracle("FX", fech, 20)
            objData.CreateInputOracle("FM", firm_M, 20)
            objData.CreateInputOracle("FPPER", firm_pper, 20)
            objData.ExecuteOracle_NonQuery("INSERT_AVAN_PPER_FIN_MEN", "Conexion.Oracle")
        Catch ex As Exception
            Throw ex
        End Try
    End Sub
    Public Function ListaPPER() As DataTable
        Dim objData As AdministradorOracle = New AdministradorOracle
        Dim objDt As DataTable
        Dim lxc_SQL As String
        Try
            lxc_SQL = "SELECT COUNT (PP.PPER) NUM, " & _
                      "S.PERIODO, " & _
                      "PP.PPER, " & _
                      "PP.DESCRIPCION,  " & _
                      "PP.ABREVIATURA, " & _
                      "SUM (PO.MONTO_TOTAL_INVERTIDO) MONTO_TOTAL_INVERTIDO, " & _
                      "SUM (NVL (PO.MONTO_TRANSFERIDO, 0)) MONTO_TRANSFERIDO, " & _
                      "SUM (S.MONTO_PROGRAMADO) MONTO_PROGRAMADO, " & _
                      "SUM (S.MONTO_COMPROMETIDO) MONTO_COMPROMETIDO, " & _
                      "SUM (S.MONTO_DEVENGADO) MONTO_DEVENGADO, " & _
                      "SUM (S.MONTO_GIRADO) MONTO_GIRADO,  " & _
                      "CASE WHEN SUM (S.MONTO_PROGRAMADO) = 0 THEN 0 ELSE ROUND(SUM(NVL(S.MONTO_GIRADO, 0))/ SUM (NVL (S.MONTO_PROGRAMADO, 0)),2)End GIRADO_MES, " & _
                      "CASE WHEN SUM (PO.MONTO_TOTAL_INVERTIDO) = 0 THEN 0 " & _
                      "ELSE ROUND(SUM(NVL(S.MONTO_GIRADO, 0))/ SUM (NVL (PO.MONTO_TOTAL_INVERTIDO, 0)),2) End GIRADO_ANUAL " & _
                      "FROM PPER PP " & _
                      "INNER JOIN POA PO " & _
                      "ON PO.PPER = PP.PPER " & _
                      "INNER JOIN SEG_PERIODO_AVAN_FINAN S " & _
                      "ON PO.POA = S.POA  " & _
                      "WHERE S.PERIODO='""' " & _
                      "GROUP BY S.PERIODO, " & _
                      "PP.PPER, " & _
                      "PP.DESCRIPCION, " & _
                      "PP.ABREVIATURA " & _
                      "ORDER BY PP.PPER"
            objDt = objData.ExecuteSQL(lxc_SQL, "Conexion.Oracle")
            Return objDt
        Catch ex As Exception
            Throw ex
        End Try
    End Function
    Public Sub EliminarComentario(ByVal IDCM As Integer)
        Dim objData As AdministradorOracle = New AdministradorOracle
        Try
            objData.CreateInputOracle("IDCM", IDCM, 20)
            objData.ExecuteOracle_NonQuery("ELIMINAR_COM_INF_CONSOLIDADO", "Conexion.Oracle")
        Catch ex As Exception
            Throw ex
        End Try
    End Sub
    Public Function CargarTotalTipo() As DataTable
        Dim objData As AdministradorOracle = New AdministradorOracle
        Dim objDt As DataTable
        Dim lxc_SQL As String
        Try
            lxc_SQL = " SELECT TP.TIPO_PROYECTO_ACTIVIDAD," + _
                      "   SUM (MONTO_TOTAL_INVERTIDO) TOTAL," + _
                      "   SUM (SPPM.MONTO_PROGRAMADO) MONTO_PROGRAMADO," + _
                      "   SUM (P.MONTO_TRANSFERIDO) MONTO_TRANSFERIDO," + _
                      "   SUM (SPPM.MONTO_GIRADO) MONTO_GIRADO," + _
                      "   ROUND (" + _
                      "      CASE" + _
                      "         WHEN SUM (MONTO_PROGRAMADO) = 0 THEN 0" + _
                      "         ELSE SUM (MONTO_GIRADO) / SUM (MONTO_PROGRAMADO)" + _
                      "      END," + _
                      "      3)" + _
                      "  PORCENT" + _
                      "  FROM SEG_PERIODO_AVAN_FINAN_MENSUAL SPPM" + _
                      "   INNER JOIN POA P" + _
                      "      ON SPPM.POA = P.POA" + _
                      "   INNER JOIN EJECUTOR E" + _
                      "      ON E.EJECUTOR = P.EJECUTOR" + _
                      "   LEFT JOIN PRODUCTO" + _
                      "      ON P.PRODUCTO = PRODUCTO.PRODUCTO" + _
                      "   INNER JOIN TIPO_PROYECTO_ACTIVIDAD TP" + _
                      "      ON TP.TIPO_PROYECTO_ACTIVIDAD = P.TIPO_PROYECTO_ACTIVIDAD" + _
                      "  WHERE(MONTO_TRANSFERIDO Is Not NULL And TIPO_ASIGNACION_RECURSO Is Not NULL)" + _
                      "  GROUP BY TP.TIPO_PROYECTO_ACTIVIDAD "
            objDt = objData.ExecuteSQL(lxc_SQL, "Conexion.Oracle")
            Return objDt
        Catch ex As Exception
            Throw
        End Try
    End Function
    Public Sub EliminarInforme(ByVal IDCM As String)
        Dim objData As AdministradorOracle = New AdministradorOracle
        Try
            objData.CreateInputOracle("IDM", IDCM, 20)
            objData.ExecuteOracle_NonQuery("ELIMINAR_INF_CONSOLIDADO", "Conexion.Oracle")
        Catch ex As Exception
            Throw ex
        End Try
    End Sub

    Public Function ListarTipoAsignacion_PPER(ByVal v_Ano As String, v_PPER As String) As DataTable
        Dim objData As AdministradorOracle = New AdministradorOracle
        Dim objdt As DataTable = New DataTable
        Try
            objData.CreateInputOracle("v_Ano", v_Ano, 4)
            objData.CreateInputOracle("v_PPER", v_PPER, 8)
            objData.CreateOutputOracle("p_Cursor", "", 100)
            objdt = objData.ExecuteOracle("SP_TIPO_ASIGNACION_PPER", "Conexion.Oracle")
            Return objdt
        Catch ex As Exception
            Throw ex
        End Try
    End Function
End Class
